package com.niit.service.impl;


import com.niit.entity.Movie;
import com.niit.service.MovieService;
import com.niit.mapper.MovieMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;


/**
 * MovieService的实现类，提供电影相关业务的处理。
 */
@Service
public class MovieServiceImpl implements MovieService {

    /**
     * 注入MovieMapper，用于数据库操作。
     */
    @Resource
    private MovieMapper MovieMapper;

    /**
     * 根据电影对象查询所有电影。
     *
     * @param movie 电影对象，包含查询条件。
     * @return 符合条件的所有电影。
     */
    @Override
    public List<Movie> findAllMovies() {
        return MovieMapper.findAllMovies();
    }

    /**
     * 根据ID查询电影。
     *
     * @param id 电影的唯一标识ID。
     * @return 与ID匹配的电影对象。
     */
    @Override
    public Movie findMovieById(Integer id) {
        return MovieMapper.findMovieById(id);
    }

    /**
     * 根据电影名称查询电影。
     *
     * @param name 电影的名称。
     * @return 与名称匹配的电影对象。
     */
    @Override
    public Movie findMovieByName(String name) {
        return MovieMapper.findMovieByName(name);
    }

    /**
     * 添加新的电影到数据库。
     *
     * @param movie 待添加的电影对象。
     * @return 添加后的电影对象。
     */
    @Override
    public Movie addMovie(Movie movie) {
        MovieMapper.addMovie(movie);
        return movie;
    }

    /**
     * 更新已存在的电影信息。
     *
     * @param movie 待更新的电影对象。
     * @return 更新后的电影对象。
     */
    @Override
    public int updateMovie(Movie movie) {
        return MovieMapper.updateMovie(movie);
    }

    /**
     * 根据ID删除电影。
     *
     * @param id 待删除电影的唯一标识ID。
     * @return 被删除的电影对象。
     */
    @Override
    public int deleteMovie(Integer movie) {
        return MovieMapper.deleteMovie(movie);
    }
}

